19. Built-in Performance Buffers
Asynchronous Timewarp + Spacewarp Rotational / Positional Reprojection
Both the HTC Vive and Oculus Rift use software to help minimize the damaging effects of your app dropping below 90fps. On the Vive this is called (Asynchronous) Rotational and Positional Reprojection, while on the Rift it’s called Asynchronous Timewarp and Spacewarp. The implementations are slightly different, but the desired effects are essentially the same: stopping the image from sticking to your face when frames are missed.
Rotational Reprojection ~= Asynchronous Timewarp
Positional Reprojection ~= Asynchronous Spacewarp
Timewarp
Asynchronous Timewarp takes the last frame rendered and applies rotational interpolation to the frame, only displaying this interpolated image if you fail to render the actual frame on time. This does an effective job of smoothing over frame drops, since the illusion of head tracking is maintained even with bad performance.
Spacewarp
Asynchronous Spacewarp works the same way, but instead applies positional interpolation. When Asynchronous Timewarp and Spacewarp are combined together, you can create synthetically interpolated frames during temporary performance hits that are good enough to trick your brain’s subconscious, reducing simulator sickness.
Although built as a failsafe to smooth over spurts of bad performance, Asynchronous Timewarp and Spacewarp (ATW and ASW) can also be used to reduce the processing needed to run VR games. Normally ATW and ASW kick in only when you are dropping below 90 frames per second. However, when an app runs below 90fps for a certain period of time, the framerate is switched to 45fps, with a synthetic frame inserted every-other frame for an effective framerate of 90fps (this is called “upsampling”). Because head tracking is maintained at 90fps, users can run VR on less powerful hardware (the processor only has to handle half the number of frames, since the other half are synthetic interpolations). Alternatively, it’s possible for developers to push more detail into their apps. Oculus seems confident in the quality of 45fps upsampled to 90fps for user experience, announcing a new minimum spec for computers to go along with the technology.
Rotational and Positional Reprojection
The Vive’s implementation of Rotational and Positional Reprojection, in contrast, detects periods of bad framerate and upon detection drops framerate to 45fps, performing upsampling like ATW and ASW. As of right now, it is not Asynchronous, meaning it’s reactive rather than preventative (although that will likely change). This makes it slightly less effective than ATW and ASW for preventing motion sickness and framedrop discomfort. However, Rotational and Positional Reprojection is more widely compatible across different hardware configurations, while ATW/ASW is limited to Windows operating system and a select group of graphics cards.
All these techniques run automatically in the background.